package cn.yunlang.zhangZhongFei.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import cn.yunlang.zhangZhongFei.entity.Award;
import cn.yunlang.zhangZhongFei.entity.WinAward;
import cn.yunlang.zhangZhongFei.vo.request.AwardVo;
import cn.yunlang.zhangZhongFei.vo.request.ChanceVo;
import cn.yunlang.zhangZhongFei.vo.response.R;

/**
 * 奖品表 服务类
 *
 * @author ·
 * @since 2025-05-27 09:54:49
 */
public interface AwardService extends IService<Award> {

  /**
   * 根据ID查询奖品
   *
   * @param awardId 奖品ID
   * @return 奖品信息
   */
  Award selectId(Long awardId);

  /**
   * 分页查询奖品列表
   *
   * @param pageNo 页码
   * @param pageSize 每页大小
   * @param awardName 奖品名称（可选）
   * @return 分页结果
   */
  R<IPage<Award>> pageAwards(Integer pageNo, Integer pageSize, String awardName);

  /**
   * 新增奖品
   *
   * @param award 奖品信息
   * @return 是否成功
   */
  boolean addAward(Award award);

  /**
   * 更新奖品
   *
   * @param award 奖品信息
   * @return 是否成功
   */
  boolean updateAward(Award award);

  /**
   * 删除奖品
   *
   * @param awardId 奖品ID
   * @return 是否成功
   */
  boolean deleteAward(Long awardId);

  /**
   * 获取抽奖机会
   *
   * @param chanceVo 抽奖机会信息
   * @return 结果消息
   */
  String getChance(ChanceVo chanceVo);

  /**
   * 参与抽奖
   *
   * @param awardVo 抽奖信息
   * @return 结果消息
   */
  String joinAward(AwardVo awardVo);

  WinAward checkWinStatus(AwardVo awardVo);
}
